AWS Certificate Manager 証明書の有効期限を CloudWatch でモニタリング可能になりました!
証明書の有効期限管理って大変ですよね。有効期限切れてましたでは済まされないし、必ずしも運用担当者にメール通知が届くとは限らないものです。。昔、大量の証明書を一覧にして、スケジュール管理した日々を思い出します。
私の昔話はこれくらいにして、タイトルの通り AWS Certificate Manager(以降 ACM)で、管理する証明書の有効期限を CloudWatch でメトリクスとしてモニタリングが可能となりました!
AWS Certificate Manager now provides certificate expiry monitoring through Amazon CloudWatch
現時点(2021/3/4 時点)では、「有効期限までの日数」 が利用可能となっています。
引用: Supported CloudWatch Metrics
また CloudWatch とともに Amazon EventBridge でイベントトリガーとしても利用可能となりました。期限をイベントに Lambda などを実行させ、カスタマイズした通知やサービスへの集約などが可能となります。
参考情報: Using CloudWatch Events
本機能は利用するための設定変更は不要なため ACM で証明書を管理されている方は CloudWatch メトリクスを確認して見てください!
自分でやってみたいので、やってみます。
事前準備
ドメインと証明書取得
Route53 でドメインを取得します。(以前取得したものがありました)
ACM にて証明書を取得します。(インポートした証明書でも、本機能は対象となるようです)
取得したばかりなので 394 日後に有効期間の終了を迎えます。
- 有効期間の開始時刻 2021-03-04T00:00:00UTC
- 有効期間の終了時刻 2022-04-02T23:59:59UTC
雰囲気を出したいので CLB のリスナーに証明書を設定しておきます。
メトリクス&アラーム
メトリクス
CloudWatch メトリクスを見ていきます。即時には取得がされないようでしばらく待ちました。(そんなに頻繁に取得するものではないかなと納得)
CertificateManager のメトリクスが表示されたら、選択していきます。
ぽつっと一度メトリクスが取得されているのが確認できます。
ウィジェットタイプが 線 だとわかりづらいので 数値 に切り替えます。先ほど ACM に記載のあった有効期間の日数と同様の値が表示されました!
アラーム
このメトリクスを利用したアラームを作成してみます。鈴のマーク からアラームを作成します。
値の変動が頻繁ではないので、一日での最小値とします。
すぐ結果が見たいので、既にアラームとなる値を設定します。(400日)
アラームが完成しました。
しばらくすると状態が変化します。
アクションに設定していたメールアドレスに通知が届きました!
さいごに
簡単にではありますが、利用可能となった ACM で管理されている証明書の有効期限を CloudWatch でモニタリングするをやってみました。今までは モニタリング SaaS や自前スクリプト(はたまたリストを用いて)などで管理していた有効期限の管理が AWS 内で完結させることが可能となりました! メトリクス取得には特に設定は不要なため、既に ACM で 証明書を管理されている方は、一度 CloudWatch でどんなものかをご覧になって、活用を検討してみるのも良いかと思います! たくさん保有している方は、ダッシュボードで管理とか良さそうですね(可視化したいだけ。思いつきです。)